package com.itheima.mall.service.pmsService;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.pojo.pms.PmsProductAttribute;
import com.itheima.pojo.pms.PmsProductAttributeCategory;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class PmsProductAttributeService {

    @DubboReference
    private PmsProductAttributeApi pmsProductAttributeApi;

    public void save(PmsProductAttribute pmsProductAttribute) {
        pmsProductAttributeApi.save(pmsProductAttribute);
    }

    public void removeByIds(List<Long> ids) {
        pmsProductAttributeApi.removeByids(ids);
    }

    public void update(PmsProductAttribute pmsProductAttribute, Long id) {
        LambdaQueryWrapper<PmsProductAttribute> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(PmsProductAttribute::getId,id);
        pmsProductAttributeApi.update(pmsProductAttribute,wrapper);
    }


    public PmsProductAttribute selectById(Long id) {
        return pmsProductAttributeApi.selectById(id);
    }

    public Map<String, Object> attrInfo(Long productCategoryId) {
        LambdaQueryWrapper<PmsProductAttribute> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(PmsProductAttribute::getProductAttributeCategoryId,productCategoryId);
        List<PmsProductAttribute> pmsProductAttributes = pmsProductAttributeApi.list(wrapper);
        List<Map<String,Object>> mapList = new ArrayList<>();
        for (PmsProductAttribute pmsProductAttribute : pmsProductAttributes) {
            Map<String,Object> map = new HashMap<>();
            map.put("attributeCategoryId",pmsProductAttribute.getProductAttributeCategoryId());
            map.put("attributeId",pmsProductAttribute.getId());
            mapList.add(map);
        }
        return (Map<String, Object>) mapList;
    }

    public Page<PmsProductAttribute> page(Page<PmsProductAttribute> pageInfo, LambdaQueryWrapper<PmsProductAttribute> wrapper) {
        return pmsProductAttributeApi.page(pageInfo,wrapper);
    }
}
